Skip to content

feat(release): Homebrew formula publishing (groundwork) - #144

Merged
prashar32 merged 1 commit into
mainfrom
feat/homebrew-tap
Jun 18, 2026
Merged

feat(release): Homebrew formula publishing (groundwork)#144
prashar32 merged 1 commit into
mainfrom
feat/homebrew-tap

Conversation

@prashar32

Copy link
Copy Markdown
Owner

Groundwork for brew install riskkernel (#97) — following the repo's per-artifact publish pattern (Python→PyPI, TS→npm).

What's here

  • scripts/gen-homebrew-formula.sh — renders a binary formula from a release's checksums.txt (per-OS/arch url + sha256 for the GoReleaser darwin/linux × amd64/arm64 archives).
  • .github/workflows/homebrew-publish.yml — on a version tag (and workflow_dispatch), downloads the release checksums, renders the formula, and commits it to the tap repo.
  • docs/HOMEBREW.md — install instructions + the one-time activation steps; README points at it.

Safe by design (won't break releases)

The workflow is inert until configured: with no HOMEBREW_TAP_TOKEN secret it logs a notice and exit 0. It's a separate workflow from the GoReleaser release (release.yml), so a misconfiguration can never block the binaries/image — same isolation as the SDK publish workflows.

Two things only you can do to activate (in docs/HOMEBREW.md)

  1. Create a public tap repo prashar32/homebrew-riskkernel (can be empty).
  2. Add an Actions secret HOMEBREW_TAP_TOKEN — a fine-grained PAT with Contents:write on that tap repo.

Then re-run the workflow (or cut the next release) and brew install prashar32/riskkernel/riskkernel works.

Verified

  • Rendered the formula against the real v0.7.0 release checksums.txt → correct per-platform sha256s and the real asset URLs.
  • ruby -c on the rendered formula → Syntax OK.
  • Workflow YAML + gen-homebrew-formula.sh parse/lint clean.
  • (Didn't run a live brew install for verification — modern brew needs the formula in a tap, and this environment has brew autoremove behavior I don't want to trigger; the render+shas+syntax cover the formula content, and the publish push is gated on your token anyway.)

Closes #97

Add a release workflow + formula generator that publish the riskkernel formula to
a Homebrew tap on each version tag, so 'brew install riskkernel' installs a
prebuilt binary and stays current — mirroring the per-artifact publish pattern of
the Python (PyPI) and TypeScript (npm) SDKs.

- scripts/gen-homebrew-formula.sh renders a binary formula from a release's
  checksums.txt (per-OS/arch url + sha256 for the GoReleaser darwin/linux
  amd64/arm64 archives).
- .github/workflows/homebrew-publish.yml runs on a version tag (and manual
  dispatch), downloads the release checksums, renders the formula, and commits it
  to the tap repo. It is INERT until a HOMEBREW_TAP_TOKEN secret is set: without
  it the job logs a notice and exits 0, so it never blocks a release.

Activating it is a one-time maintainer step (create the homebrew-riskkernel tap
repo + add the token) documented in docs/HOMEBREW.md. README points at it; until
then the existing go install / docker run / release-binary paths are unchanged.

Verified the generator against the real v0.7.0 release: rendered the formula from
the published checksums.txt (correct per-platform sha256s) and confirmed valid
Ruby syntax (ruby -c).
@prashar32
prashar32 merged commit 2000816 into main Jun 18, 2026
5 checks passed
prashar32 added a commit that referenced this pull request Jun 20, 2026
- ROADMAP: Homebrew shipped (#144) — move it from 'Next' into the Operability
  'Shipped' bullet; the headline runtime is built out, so 'Next' is now framed as
  demand-driven rather than listing a stale item.
- ARCHITECTURE: the provider package is no longer 'OpenAI/Bedrock/Ollama stubbed' —
  Anthropic, OpenAI, Ollama, and AWS Bedrock are all native now.
prashar32 added a commit that referenced this pull request Jun 20, 2026
* release: v0.8.0

* docs: bring ROADMAP and ARCHITECTURE current for v0.8.0

- ROADMAP: Homebrew shipped (#144) — move it from 'Next' into the Operability
  'Shipped' bullet; the headline runtime is built out, so 'Next' is now framed as
  demand-driven rather than listing a stale item.
- ARCHITECTURE: the provider package is no longer 'OpenAI/Bedrock/Ollama stubbed' —
  Anthropic, OpenAI, Ollama, and AWS Bedrock are all native now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Homebrew tap for brew install riskkernel

1 participant